package com.liqi.frame.comm.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liqi.frame.comm.po.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * 角色的数据访问对象
 * @author liqi on 2017-05-27.
 */
public interface RoleDao extends BaseMapper<Role> {
    Set<String> findRoleByUserId(String id);


    List<Role> selectList(@Param("roleKey") String roleKey, @Param("groupIds") String[] groupIds);

    Role getObjectById(@Param("id") String id);

    int insertObject(@Param("id") String id,
                     @Param("roleKey") String roleKey,
                     @Param("roleName") String roleName,
                     @Param("comment") String comment,
                     @Param("orderId") Float orderId,
                     @Param("groupId") String groupId,
                     @Param("groupName") String groupName);

    int updateObject(@Param("id") String id,
                     @Param("roleKey") String roleKey,
                     @Param("roleName") String roleName,
                     @Param("comment") String comment,
                     @Param("orderId") Float orderId,
                     @Param("groupId") String groupId,
                     @Param("groupName") String groupName);

    int deleteObjectById(@Param("id") String id);

    List<Role> getRolesByUsername(@Param("username") String username);

    List<Role> getRolesByUserId(@Param("userId") String userId);

    List<Role> getRoleListByKey(@Param("roleKey") String roleKey);
    List<Role> getRoleListWithName(@Param("roleName") String roleName, @Param("groupIds") String[] groupIds);
    List<Role> getRoleListWithNameByUserId(@Param("roleName") String roleName, @Param("groupIds") String[] groupIds, @Param("userId") String userId);

    /**
     * 取指定组织中的角色数据
     * @param groupId
     * @return
     */
    List<Role> getRoleListByGroupId(@Param("groupId") String groupId);
}
